1. Field of the Invention
Embodiments of the present invention relate to systems and methods of sharing data among autonomous processing entities under a common framework. More particularly, embodiments of the present invention relate to systems and methods for specifying shared data in an software application as a replaceable tag that is replaced at runtime by another software application.
2. Background Information
Sharing data among software applications is a common problem. Numerous solutions to this problem exist. One solution is an application programming interface (API). An API of a first application allows a second application to access its data via a defined set of routines, which the second application can call. An API can be a very efficient method of sharing data, especially for large and complex applications. Considerable effort, however, is required to develop and learn an API. As a result, it is less efficient method for large numbers of smaller applications.
Another method of sharing data is messaging. In this method, one application sends data to another application in the form of a message. The format of the message is understood by both applications. Messaging is advantageous for large numbers of autonomous applications, because only one format, or set of rules, needs to be understood by all applications. Messaging, however, becomes very complex when large numbers of applications share data. Message contention, is one of the many problems that arise in this instance.
Other methods of sharing data among software applications include but are not limited to Software Development Kit (SDK) integration, communication through a central repository, and file sharing. All methods of sharing data have advantages and disadvantages for particular types of applications.
Software applications that share simple information are a particularly hard problem. Simple information is, for example, a name or telephone number. It is usually a single piece of data. Most methods for sharing data among these applications are time consuming, manually intensive, and require an intense knowledge of a programming interface.
In view of the foregoing, it can be appreciated that a substantial need exists for systems and methods that can advantageously provide for data sharing among autonomous software applications that share simple information.